Information systems have evolved from centralized mainframe computer systems supporting a large number of users to distributed computer systems based on local area network (LAN) architectures. As the cost-to-processing-power ratios for computer workstations, network servers, telephone switching equipment, wireless communication devices, and the like, have dropped precipitously, wireline and wireless LAN systems have proved to be highly cost effective. As a result, the number of LANs and LAN-based applications has exploded.
To enhance the reliability of modern information systems (IS), it is common practice to build IS components as redundant devices. For example, network switches, routers, wireless base stations, and the like, may contain a primary (also called “master” or “active”) processing system that ordinarily performs the data processing functions of the device and a secondary (also called “slave” or “standby”) processing system that takes over from the primary processing system upon a failure or upon the occurrence of certain selected events. To properly transfer control from the primary processing system to the secondary processing system, the data file used by the primary processing system (called “source” or “original” data file) must constantly be copied to the data file used by the secondary processing system (called “copy” or “image” data file) after recovery from the failure.
The prior art redundant processing systems typically accomplish this by means of a first bulk copy run that copies everything in the source data file to the copy data file. Then, a second bulk copy run is performed that copies to the copy data file only that data in the source data file that changed during the first copy run. This procedure is repeated until a single copy pass ends without any data changing. Thereafter, a realtime update process is used to copy each change in the source data file to the copy data file as each change occurs in the source data file. However, the duration and efficiency of the above-described procedure is greatly dependent on the rate at which data changes in the source data file. If data changes frequently, it is difficult to determine when the bulk copy will be completed so that the real time update process can take over.
There is therefore a need in the art for an improved redundancy architecture for use in a communication network. More particularly, there is a need in the art for an improved data synchronization system that synchronizes the data in a source data file and the data in a copy data file in a rapid and deterministic manner.